<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>
	<button>1</button>
</body>
<script>
	// 回调函数：是你定义的，但不是你调用的。
	// 定义的回调函数没有在同一个作用域内调用。
	// document.querySelector("button").onclick = function(){
	//
	// }
	
	// function fn(cb){
	// 	cb();
	// }
	// fn(function(){})
	
	// 同步回调：
	// 1. 理解: 立即执行, 完全执行完了才结束, 不会放入回调队列中
	// 2. 例子: 数组遍历相关的回调函数、`Promise` 的 `excutor`函数
	// {
	// 	// some filter find findIndex map
	// 	const arr = [1,2,3,4];
	// 	arr.forEach(function(item){
	// 		console.log(item);
	// 	});
	// 	console.log("over");
	// }
	
	// 异步回调
	// 1. 理解: 不会立即执行, 会放入回调队列中将来执行
	// 2. 例子: 定时器回调`ajax`回调 、Promise的成功|失败的回调
	{
		// 定时器
		// setTimeout(function(){
		// 	console.log("timeout")
		// });
		// console.log("over");
		
		// ajax
		const xhr = new XMLHttpRequest();
		xhr.open("get","./1-错误处理.html");
		xhr.send();
		xhr.onload = function(){
			console.log(xhr.response);
		}
		console.log("over");
	}
	
	
</script>
</html>